Database management systems manage access between clients and databases. With increasing database usage, database management systems are required to handle a larger number of transactions between clients and databases. The interactions between clients and databases are also becoming more complex. Database transactions often involve multiple clients. Furthermore, the type of actions that are typically performed in one transaction increasingly requires additional user-involvement.
Frequently, clients want the database management system to perform some action automatically in response to an event of interest. Consequently, various approaches have been developed to allow database management systems to perform actions in response to events of interest. One such approach involves the use of triggers, alternatively referred to as “synchronous actions”. Specifically, users can define triggers that (1) specify an operation, and (2) specify an event. The trigger is then stored in a database system. When the specified event occurs, the trigger is “fired” and the database system performs the specified operation. Unfortunately, the specified operation is performed synchronously relative to the process that caused the event that fired the trigger. Consequently, the performance of the operation that caused the trigger to fire suffers.
Another approach to allow database management systems to perform actions in response to events of interest involves notifications. Such actions are performed asynchronously relative to the database transactions that cause the events of interest to occur. For example, in response to an event of interest caused by a transaction, the database management system signals a notification out to a designated user or client. The sending of the message occurs independent of the transaction that caused the event of interest. The designated user or client may respond to the notification by performing some action indicated by the notification. For example, the user may complete a transaction with the database management system.
Based on the foregoing, it is clearly desirable to provide a mechanism and techniques, for allowing database management systems to perform actions in response to events of interest, that avoid the disadvantages of existing approaches.